1. Field of the Invention
The present invention relates to an image decoding system, an image reconstruction system, an interblock distortion removal filter as well as a method of image compression and a method of image decoding preferably applied to such systems. The present invention pertains to an image processing system for dividing an image of one screen page into a plurality of nxn pixel blocks and coding and decoding data in each block, or more specifically to a system for decoding compression data previously coded to reconstruct video data. The principle of the invention is applicable to image processing steps executed in video game machines, display units for personal computers, multi-media apparatus, and other similar devices.
2. Description of the Related Art
A variety of image processing systems for efficiently compressing video data and quickly decoding compression data to display decoded video data according to the requirements have been proposed with the increased demands for natural images and moving pictures. Extremely high-speed image processing and image reading allows video data recoded in a compressive form to be reconstructed directly without any memory. For a moving picture which requires reconstruction of video data of several tens frames per second, however, conventional image processing systems are provided with a frame buffer having a capacity of at least one screen page.
Known processes of video data compression include orthogonal transform coding, discrete cosine transform (DCT) coding, and Huffman coding. In any process, video data constituting one screen page are previously divided into a plurality of n.times.n-pixel blocks. An example of DCT compression processes for YUV color images is an image coding method based on a J-PEG (Joint Photographics Expert Group) algorithm d. A known image coding and compressing method by orthogonal transform is an H.261 image coding process of CCITT (Comite Cousultatif International Telegraphique et Telephonique).
In the conventional image compression processes, video data are coded in a block unit according to an irreversible transform where original video data are not reconstructed perfectly by decoding. Continuity of an original image may thus be interrupted undesirably on a boundary of adjacent blocks. An interblock distortion removal filter is conventionally used to eliminate such discontinuity called interblock distortion. The filter stores decoded video data, and executes a filter operation or more concretely, calculates a weighted average of data of adjacent pixels while reading data of adjacent blocks.
Conventional image coding methods are generally divided into two groups according to a sequence of display of a decoded image; a sequential coding process and a progressive coding process. In the sequential coding process, decoded video data having a final picture quality are displayed successively from the top to the bottom. In the progressive coding process, on the other hand, a rough decoded image having the low resolution and tone is first displayed from the top to the bottom, and the resolution and the tone are then improved gradually. Compression data have a triple hierarchical structure of Image/Frame/Scan. While one Image includes compression data of only one Frame (one screen page) in the sequential coding process, one Image includes a plurality of Frames (one screen page) in the progressive coding process where a header code corresponding to each Frame is added to the head of the Frame and is followed by one or a plurality of Scans. The Scan represents compression data corresponding to the top through the bottom of an image. One Frame includes only one Scan when all color components are included in the compression data whereas one Frame includes a plurality of Scans in the other cases. In both the sequential coding process and the progressive coding process, compression data are structured in a unit of one screen page.
The conventional image processing and decoding systems described above have problems below.
(1) The conventional system is provided with a frame buffer having a capacity for storing compression data of at least one screen page. Such a frame buffer requires a relatively large area for installation and raises the cost of the system. A pair of frame buffers or a specific, expensive memory, such as a dual port memory, is required for writing decoded video data during reconstruction of an image to display a moving picture. This further raises the cost of packaging.
(2) In the conventional method, video data are compressed in a unit of one screen page. This allows only one display color mode (for example, 16.77 million color mode, 32,768 color mode, and 256 color modes) to be applied for reconstruction of one screen page. Decoding and simultaneous display in one screen page of a compressed natural image and a compressed animation image with a small number of colors requires separate frame buffers and an additional overlapping process. Such a modification on the hardware structure requires a large memory capacity and a complicated circuit structure including an additional image composition circuit, thus making the whole system undesirably complicated and bulky. This is not substantially applicable to video game machines because of the increased cost and area for packaging.
(3) When video data are compressed by each pixel block according to a transform coding process, compression data thus generated are also decoded in the unit of a pixel block. In such a system, for reading out video data along scanning lines of a display unit such as a CRT (cathode ray tube), a block-line conversion is generally required where video data decoded by each block are first stored in a memory and then successively read out by each line along the scanning lines. For removal of an interblock distortion generated in a direction perpendicular to the scanning lines, video data corresponding to a last line of each block should be stored in a line buffer. While reading video data corresponding to a first line of a next block, the system executes a filter operation between the video data of the first line and the video data of the last line stored in the line buffer. The line buffer should have a capacity corresponding to a number of pixels in the direction of the scanning lines.